package com.ytjj.qmyx.admin.service;

import com.ytjj.common.api.CommonPage;
import com.ytjj.qmyx.admin.model.request.ReiOrderRequest;
import com.ytjj.qmyx.admin.model.request.ReimbursementOrderRequest;
import com.ytjj.qmyx.admin.model.response.ReiOrderQueryResponse;
import com.ytjj.qmyx.admin.model.response.ReiOrderResponse;
import com.ytjj.qmyx.admin.model.response.ReimbursementExportRecordResponse;
import com.ytjj.qmyx.mall.model.Banker;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author jiawei
 * @date 2023年11月13日 10:47
 * @describe
 */
public interface ReimbursementOrdersService {

    /**
     * 新建报销单
     */
    Integer createOrUpdateReiOrder(ReiOrderRequest request);

    /**
     * 校验子订单是否已报销
     */
    String checkReiOrderInfo(String childOrderNos,String id);

    /**
     * 新建报销单
     */
    Integer approvalOrReimburse(ReiOrderRequest request);

    /**
     * 获取报销单详情
     */
    ReiOrderResponse getReiOrderDetail(Integer id);

    /**
     * 分页查询报销单
     */
    CommonPage<ReiOrderQueryResponse> getReimbursementOrders(ReimbursementOrderRequest request);

    /**
     * 导出报销单
     */
    void exportReimbursementOrders(ReimbursementOrderRequest request);

    /**
     * 下载导出记录
     */
    void downloadExcel(HttpServletResponse response, Integer id);

    /**
     * 根据供应商名称查询供应商
     */
    List<Banker> getBankerByName(String bankerName);

    /**
     * 分页获取导出记录
     */
    CommonPage<ReimbursementExportRecordResponse> getExportRecord(Integer pageNum, Integer pageSize, String adminName);

    /**
     * 批量删除报销单
     */
    String delReimbursementOrders(List<Integer> ids);

    /**
     * 获取报销历史
     */
    List<ReiOrderResponse> getReimbursementHistory(String childOrderNo);

    Integer analysisReimbursementExcel();

    /**
     * 标记审核状态
     * @param id 唯一标识
     * @param mark 操作标识 0-取消,1-审核,2-确认
     * @return String
     */
    String markAuditStatus(Integer id,Integer mark);


}
